package com.zjw.project.meeting.controller;


import com.zjw.entity.po.User;
import com.zjw.entity.po.WeiUsers;
import com.zjw.project.weixin.api.message.MessageCustomUtil;
import com.zjw.service.UserService;
import com.zjw.service.WeiUsersService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@Slf4j
@RequestMapping("user")
public class UserController {

    /**
     *
     * 根据邮箱 查询user表
     * 1、user对象为空？
     *       提示：您输入的邮箱不存在，请联系所在区管理员。
     * 2、user对象不为空？
     *     判断当前操作的 wid 是否为NULL？
     *        如果 wid不为NULL--》 您输入的邮箱已被其它用户登录，请联系管理员
     *        如果wid 为NULL
     *          --》绑定（登录）：  根据 邮箱 更新user表  wid值   （email/ wid)

     */

    @Autowired
    private UserService userService;

    /**
     * 客户消息接口，主动给用户发消息
     */
    @Autowired
    private MessageCustomUtil messageCustomUtil;

    @Autowired
    private WeiUsersService weiUsersService;

    @ResponseBody
    @PostMapping("login")//user/login
    public String login(@RequestParam("email") final String email,
                        @RequestParam("wid") final Integer wid){

        User user = userService.selectUserByEmail(email);

        if (user == null){
            return "1";   //提示：您输入的邮箱不存在，请联系所在区管理员
        }else {
            if (user.getWid() == null){
                int num = userService.updateWidByEmail(wid, email);
                log.info("微信用户绑定登陆成功"+wid +"/t"+email);
                WeiUsers weiUsers = weiUsersService.selectByPrimaryKey(wid);
                messageCustomUtil.sendMessageTextLogin(weiUsers.getOpenid());

                return "2";
            }else {
                return "3";  //您输入的邮箱已被其它用户登录，请联系管理员
            }
        }
    }

    @PostMapping("update")  //user/update
    @ResponseBody
    public int update(User user){

        int i = userService.updateByPrimaryKeySelective(user);
        log.info("修改成功-----》》"+user);
        return i;
    }

}
